home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 April: Mac OS SDK / Dev.CD Apr 99 SDK1.toast / Development Kits / Interfaces&Libraries / Universal / Interfaces / PInterfaces / QD3DController.p < prev    next >
Encoding:
Text File  |  1998-08-17  |  9.2 KB  |  179 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        QD3DController.p
  3.  
  4.      Contains:    Q3Controller methods    
  5.  
  6.      Version:    Technology:    Quickdraw 3D 1.5.4
  7.                  Release:    Universal Interfaces 3.2
  8.  
  9.      Copyright:    © 1995-1998 by Apple Computer, Inc., all rights reserved.
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. }
  17. {$IFC UNDEFINED UsingIncludes}
  18. {$SETC UsingIncludes := 0}
  19. {$ENDC}
  20.  
  21. {$IFC NOT UsingIncludes}
  22.  UNIT QD3DController;
  23.  INTERFACE
  24. {$ENDC}
  25.  
  26. {$IFC UNDEFINED __QD3DCONTROLLER__}
  27. {$SETC __QD3DCONTROLLER__ := 1}
  28.  
  29. {$I+}
  30. {$SETC QD3DControllerIncludes := UsingIncludes}
  31. {$SETC UsingIncludes := 1}
  32.  
  33. {$IFC UNDEFINED __QD3D__}
  34. {$I QD3D.p}
  35. {$ENDC}
  36.  
  37.  
  38. {$PUSH}
  39. {$ALIGN POWER}
  40. {$LibExport+}
  41.  
  42. {*****************************************************************************
  43.  **                                                                             **
  44.  **                                Type Definitions                             **
  45.  **                                                                             **
  46.  ****************************************************************************}
  47.  
  48. TYPE
  49. {$IFC TYPED_FUNCTION_POINTERS}
  50.     TQ3ChannelGetMethod = FUNCTION(controllerRef: TQ3ControllerRef; channel: UInt32; data: UNIV Ptr; VAR dataSize: UInt32): TQ3Status; C;
  51. {$ELSEC}
  52.     TQ3ChannelGetMethod = ProcPtr;
  53. {$ENDC}
  54.  
  55. {$IFC TYPED_FUNCTION_POINTERS}
  56.     TQ3ChannelSetMethod = FUNCTION(controllerRef: TQ3ControllerRef; channel: UInt32; data: UNIV Ptr; dataSize: UInt32): TQ3Status; C;
  57. {$ELSEC}
  58.     TQ3ChannelSetMethod = ProcPtr;
  59. {$ENDC}
  60.  
  61.     TQ3ControllerDataPtr = ^TQ3ControllerData;
  62.     TQ3ControllerData = RECORD
  63.         signature:                CStringPtr;
  64.         valueCount:                UInt32;
  65.         channelCount:            UInt32;
  66.         channelGetMethod:        TQ3ChannelGetMethod;
  67.         channelSetMethod:        TQ3ChannelSetMethod;
  68.     END;
  69.  
  70. {*****************************************************************************
  71.  **                                                                             **
  72.  **                                     Routines                                 **
  73.  **                                                                             **
  74.  ****************************************************************************}
  75. FUNCTION Q3Controller_GetListChanged(VAR listChanged: TQ3Boolean; VAR serialNumber: UInt32): TQ3Status; C;
  76. FUNCTION Q3Controller_Next(controllerRef: TQ3ControllerRef; VAR nextControllerRef: TQ3ControllerRef): TQ3Status; C;
  77. FUNCTION Q3Controller_New({CONST}VAR controllerData: TQ3ControllerData): TQ3ControllerRef; C;
  78. FUNCTION Q3Controller_Decommission(controllerRef: TQ3ControllerRef): TQ3Status; C;
  79. FUNCTION Q3Controller_SetActivation(controllerRef: TQ3ControllerRef; active: TQ3Boolean): TQ3Status; C;
  80. FUNCTION Q3Controller_GetActivation(controllerRef: TQ3ControllerRef; VAR active: TQ3Boolean): TQ3Status; C;
  81. FUNCTION Q3Controller_GetSignature(controllerRef: TQ3ControllerRef; signature: CStringPtr; numChars: UInt32): TQ3Status; C;
  82. FUNCTION Q3Controller_SetChannel(controllerRef: TQ3ControllerRef; channel: UInt32; data: UNIV Ptr; dataSize: UInt32): TQ3Status; C;
  83. FUNCTION Q3Controller_GetChannel(controllerRef: TQ3ControllerRef; channel: UInt32; data: UNIV Ptr; VAR dataSize: UInt32): TQ3Status; C;
  84. FUNCTION Q3Controller_GetValueCount(controllerRef: TQ3ControllerRef; VAR valueCount: UInt32): TQ3Status; C;
  85. FUNCTION Q3Controller_SetTracker(controllerRef: TQ3ControllerRef; tracker: TQ3TrackerObject): TQ3Status; C;
  86. FUNCTION Q3Controller_HasTracker(controllerRef: TQ3ControllerRef; VAR hasTracker: TQ3Boolean): TQ3Status; C;
  87. FUNCTION Q3Controller_Track2DCursor(controllerRef: TQ3ControllerRef; VAR track2DCursor: TQ3Boolean): TQ3Status; C;
  88. FUNCTION Q3Controller_Track3DCursor(controllerRef: TQ3ControllerRef; VAR track3DCursor: TQ3Boolean): TQ3Status; C;
  89. FUNCTION Q3Controller_GetButtons(controllerRef: TQ3ControllerRef; VAR buttons: UInt32): TQ3Status; C;
  90. FUNCTION Q3Controller_SetButtons(controllerRef: TQ3ControllerRef; buttons: UInt32): TQ3Status; C;
  91. FUNCTION Q3Controller_GetTrackerPosition(controllerRef: TQ3ControllerRef; VAR position: TQ3Point3D): TQ3Status; C;
  92. FUNCTION Q3Controller_SetTrackerPosition(controllerRef: TQ3ControllerRef; {CONST}VAR position: TQ3Point3D): TQ3Status; C;
  93. FUNCTION Q3Controller_MoveTrackerPosition(controllerRef: TQ3ControllerRef; {CONST}VAR delta: TQ3Vector3D): TQ3Status; C;
  94. FUNCTION Q3Controller_GetTrackerOrientation(controllerRef: TQ3ControllerRef; VAR orientation: TQ3Quaternion): TQ3Status; C;
  95. FUNCTION Q3Controller_SetTrackerOrientation(controllerRef: TQ3ControllerRef; {CONST}VAR orientation: TQ3Quaternion): TQ3Status; C;
  96. FUNCTION Q3Controller_MoveTrackerOrientation(controllerRef: TQ3ControllerRef; {CONST}VAR delta: TQ3Quaternion): TQ3Status; C;
  97. FUNCTION Q3Controller_GetValues(controllerRef: TQ3ControllerRef; valueCount: UInt32; VAR values: Single; VAR changed: TQ3Boolean; VAR serialNumber: UInt32): TQ3Status; C;
  98. FUNCTION Q3Controller_SetValues(controllerRef: TQ3ControllerRef; {CONST}VAR values: Single; valueCount: UInt32): TQ3Status; C;
  99.  
  100. {*****************************************************************************
  101.  **                                                                             **
  102.  **                                     Routines                                 **
  103.  **                                                                             **
  104.  ****************************************************************************}
  105. FUNCTION Q3ControllerState_New(controllerRef: TQ3ControllerRef): TQ3ControllerStateObject; C;
  106. FUNCTION Q3ControllerState_SaveAndReset(controllerStateObject: TQ3ControllerStateObject): TQ3Status; C;
  107. FUNCTION Q3ControllerState_Restore(controllerStateObject: TQ3ControllerStateObject): TQ3Status; C;
  108.  
  109. {*****************************************************************************
  110.  **                                                                             **
  111.  **                                Type Definitions                             **
  112.  **                                                                             **
  113.  ****************************************************************************}
  114.  
  115. TYPE
  116. {$IFC TYPED_FUNCTION_POINTERS}
  117.     TQ3TrackerNotifyFunc = FUNCTION(trackerObject: TQ3TrackerObject; controllerRef: TQ3ControllerRef): TQ3Status; C;
  118. {$ELSEC}
  119.     TQ3TrackerNotifyFunc = ProcPtr;
  120. {$ENDC}
  121.  
  122. {*****************************************************************************
  123.  **                                                                             **
  124.  **                                     Routines                                 **
  125.  **                                                                             **
  126.  ****************************************************************************}
  127. FUNCTION Q3Tracker_New(notifyFunc: TQ3TrackerNotifyFunc): TQ3TrackerObject; C;
  128. FUNCTION Q3Tracker_SetNotifyThresholds(trackerObject: TQ3TrackerObject; positionThresh: Single; orientationThresh: Single): TQ3Status; C;
  129. FUNCTION Q3Tracker_GetNotifyThresholds(trackerObject: TQ3TrackerObject; VAR positionThresh: Single; VAR orientationThresh: Single): TQ3Status; C;
  130. FUNCTION Q3Tracker_SetActivation(trackerObject: TQ3TrackerObject; active: TQ3Boolean): TQ3Status; C;
  131. FUNCTION Q3Tracker_GetActivation(trackerObject: TQ3TrackerObject; VAR active: TQ3Boolean): TQ3Status; C;
  132. FUNCTION Q3Tracker_GetButtons(trackerObject: TQ3TrackerObject; VAR buttons: UInt32): TQ3Status; C;
  133. FUNCTION Q3Tracker_ChangeButtons(trackerObject: TQ3TrackerObject; controllerRef: TQ3ControllerRef; buttons: UInt32; buttonMask: UInt32): TQ3Status; C;
  134. FUNCTION Q3Tracker_GetPosition(trackerObject: TQ3TrackerObject; VAR position: TQ3Point3D; VAR delta: TQ3Vector3D; VAR changed: TQ3Boolean; VAR serialNumber: UInt32): TQ3Status; C;
  135. FUNCTION Q3Tracker_SetPosition(trackerObject: TQ3TrackerObject; controllerRef: TQ3ControllerRef; {CONST}VAR position: TQ3Point3D): TQ3Status; C;
  136. FUNCTION Q3Tracker_MovePosition(trackerObject: TQ3TrackerObject; controllerRef: TQ3ControllerRef; {CONST}VAR delta: TQ3Vector3D): TQ3Status; C;
  137. FUNCTION Q3Tracker_GetOrientation(trackerObject: TQ3TrackerObject; VAR orientation: TQ3Quaternion; VAR delta: TQ3Quaternion; VAR changed: TQ3Boolean; VAR serialNumber: UInt32): TQ3Status; C;
  138. FUNCTION Q3Tracker_SetOrientation(trackerObject: TQ3TrackerObject; controllerRef: TQ3ControllerRef; {CONST}VAR orientation: TQ3Quaternion): TQ3Status; C;
  139. FUNCTION Q3Tracker_MoveOrientation(trackerObject: TQ3TrackerObject; controllerRef: TQ3ControllerRef; {CONST}VAR delta: TQ3Quaternion): TQ3Status; C;
  140. FUNCTION Q3Tracker_SetEventCoordinates(trackerObject: TQ3TrackerObject; timeStamp: UInt32; buttons: UInt32; {CONST}VAR position: TQ3Point3D; {CONST}VAR orientation: TQ3Quaternion): TQ3Status; C;
  141. FUNCTION Q3Tracker_GetEventCoordinates(trackerObject: TQ3TrackerObject; timeStamp: UInt32; VAR buttons: UInt32; VAR position: TQ3Point3D; VAR orientation: TQ3Quaternion): TQ3Status; C;
  142. {*****************************************************************************
  143.  **                                                                             **
  144.  **                                 Types                                         **
  145.  **                                                                             **
  146.  ****************************************************************************}
  147.  
  148. TYPE
  149. {$IFC TYPED_FUNCTION_POINTERS}
  150.     TQ3CursorTrackerNotifyFunc = PROCEDURE; C;
  151. {$ELSEC}
  152.     TQ3CursorTrackerNotifyFunc = ProcPtr;
  153. {$ENDC}
  154.  
  155. {*****************************************************************************
  156.  **                                                                             **
  157.  **                                 Routines                                     **
  158.  **                                                                             **
  159.  ****************************************************************************}
  160. FUNCTION Q3CursorTracker_PrepareTracking: TQ3Status; C;
  161. FUNCTION Q3CursorTracker_SetTrackDeltas(trackDeltas: TQ3Boolean): TQ3Status; C;
  162. FUNCTION Q3CursorTracker_GetAndClearDeltas(VAR depth: Single; VAR orientation: TQ3Quaternion; VAR hasOrientation: TQ3Boolean; VAR changed: TQ3Boolean; VAR serialNumber: UInt32): TQ3Status; C;
  163. FUNCTION Q3CursorTracker_SetNotifyFunc(notifyFunc: TQ3CursorTrackerNotifyFunc): TQ3Status; C;
  164. FUNCTION Q3CursorTracker_GetNotifyFunc(VAR notifyFunc: TQ3CursorTrackerNotifyFunc): TQ3Status; C;
  165.  
  166.  
  167.  
  168.  
  169. {$ALIGN RESET}
  170. {$POP}
  171.  
  172. {$SETC UsingIncludes := QD3DControllerIncludes}
  173.  
  174. {$ENDC} {__QD3DCONTROLLER__}
  175.  
  176. {$IFC NOT UsingIncludes}
  177.  END.
  178. {$ENDC}
  179.